package com.xnyzc.lhy.mis.service.cms.order;

import com.xnyzc.lhy.common.entity.Rv;
import com.xnyzc.lhy.mis.entity.order.CharteredDetailsParam;
import com.xnyzc.lhy.mis.entity.order.OaCOrderPersonal;
import com.xnyzc.lhy.mis.entity.param.cms.order.CmsOadOrderPersonalParam;
import com.xnyzc.lhy.mis.entity.result.order.OrderList;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * 自费叫车订单管理
 *
 * @Author conglijuan
 */
public interface ICmsOacOrderPersonalService {

    /**
     * 获取自费叫车订单列表
     *
     * @param cmsOadOrderPersonalParam
     * @return
     */
    Rv getCmsOacOrderPersonalList(CmsOadOrderPersonalParam cmsOadOrderPersonalParam);

    /**
     * 获取自费叫车订单详情
     *
     * @param cmsOadOrderPersonalParam
     * @return
     */
    Rv getCmsOacOrderPersonalDetail(CmsOadOrderPersonalParam cmsOadOrderPersonalParam);

    /**
     * 获取订单详细信息
     *
     * @param orderNo
     * @return
     */
    Rv getOrderDetail(String orderNo);

    /**
     * 导出订单
     *
     * @param cmsOadOrderPersonalParam
     * @return
     */
    Rv exportOrderExcel(CmsOadOrderPersonalParam cmsOadOrderPersonalParam);

    /**
     * 获取订单状态列表
     *
     * @param cmsOadOrderPersonalParam
     * @return
     */
    Rv getCmsOrderStatusList(CmsOadOrderPersonalParam cmsOadOrderPersonalParam);

    /**
     * 订单轨迹
     *
     * @param orderNo
     * @return
     */
    Rv ownexpenseTrajectory(String orderNo);

    /**
     * 根据订单获取主键ID,给合力用
     *
     * @param orderId ：订单ID
     * @return
     */
    Rv getOrderPersonalId(String orderId);

    /**
     * 重新编写菜单列表的接口
     *
     * @return
     */
    Rv getNewOrderList(OrderList orderList);
    /**
     * 取消携程订单
     *
     * @return
     */
    Rv cancelXCOrder(String orderNo);

    /**
     * 只针对携程 更新最晚需要请求司机信息
     * @return
     */
    Rv updateXCLastPushDriverTime();

    Rv getNewExportOrderExcel(OrderList orderList);

    /**
     * 订单详情获取行程录音
     *
     * @param cmsOadOrderPersonalParam
     * @return
     */
    Rv getCmsOrderDetailRecording(CmsOadOrderPersonalParam cmsOadOrderPersonalParam);

    Rv getCmsOrderListByDriverId(String target);

    Rv addNewOrder(OaCOrderPersonal oaCOrderPersonal);
    Rv cancleOrder(String orderNo);

    Rv getCmsOaSysOrdersList(List<Long> driverIds);


    Rv getOaDCharterOrderDetail(CmsOadOrderPersonalParam cmsOadOrderPersonalParam);

    Rv getNewCharterOrderList();

    Rv exportExcelOfCharterOrder(OrderList orderList);
}
